package com.example.shiyanliu;

import android.annotation.SuppressLint;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import android.webkit.WebChromeClient;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.webkit.URLUtil;

public class MainActivity extends Activity {
    private WebView webView;
    private EditText etUrl;
    private Button btnGo, btnBack, btnForward;

    @SuppressLint("SetJavaScriptEnabled")
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // 初始化组件
        etUrl = findViewById(R.id.etUrl);
        btnGo = findViewById(R.id.btnGo);
        btnBack = findViewById(R.id.btnBack);
        btnForward = findViewById(R.id.btnForward);
        webView = findViewById(R.id.wvBrowser);

        // 配置 WebView
        webView.getSettings().setJavaScriptEnabled(true); // 允许执行 JavaScript
        webView.getSettings().setSupportZoom(true); // 支持缩放
        webView.setWebChromeClient(new WebChromeClient()); // 处理加载进度等

        // 设置 WebView 客户端（拦截链接跳转）
        webView.setWebViewClient(new WebViewClient() {
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                view.loadUrl(url); // 在当前 WebView 中加载链接
                return true;
            }
        });

        // GO 按钮点击事件
        btnGo.setOnClickListener(v -> loadUrl());

        // 后退按钮点击事件
        btnBack.setOnClickListener(v -> goBack());

        // 前进按钮点击事件
        btnForward.setOnClickListener(v -> goForward());
    }

    // 加载网址
    private void loadUrl() {
        String url = etUrl.getText().toString().trim();
        if (URLUtil.isNetworkUrl(url)) { // 验证网址格式
            webView.loadUrl(url);
        } else {
            Toast.makeText(this, "抱歉，您输入的网址有误", Toast.LENGTH_SHORT).show();
            etUrl.requestFocus(); // 聚焦输入框
        }
    }

    // 后退浏览记录
    private void goBack() {
        if (webView.canGoBack()) {
            webView.goBack();
        } else {
            Toast.makeText(this, "已到历史记录最前", Toast.LENGTH_SHORT).show();
        }
    }

    // 前进浏览记录
    private void goForward() {
        if (webView.canGoForward()) {
            webView.goForward();
        } else {
            Toast.makeText(this, "已到历史记录最后", Toast.LENGTH_SHORT).show();
        }
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        webView.destroy(); // 销毁 WebView 避免内存泄漏
    }
}